package exception;

/**
 * 异常的输出
 * throw关键字允许我们主动对外抛出一个异常,通常下列情况会如此:
 * 1.当代码片段出现了一个异常,但是该异常不应当在当前代码片段中被解决是可对外抛出
 * 2.满足语法但是不满足业务逻辑时,可以将其当做异常抛出给调用者
 */
public class ThrowDemo {
    public static void main(String[] args) {
        Person p = new Person();
        try {
            /*
            当我们调用一个含有throws声明异常抛出的方法时,编译器要求我们必须处理这个异常,处理方式有两种
            1:主动try-catch捕获并解决该异常
            2:在当前方法上继续使用throws声明该异常的抛出
            具体选取哪个要结合实际业务分析异常处理的责任制问题.
             */
            p.setAge(10086);   //满足语法,但是不满足业务逻辑
        } catch (Exception e) {
            e.printStackTrace();
        }
        System.out.println(p.getAge());
    }
}
